進入資料庫開發階段,對於unity該使用何種資料庫,優劣點為何,
研究了一下,一點心得記錄如下
sqlserver VS sqllite VS arcclet
sqlserver
是我取熟悉的資料庫,但將來發佈在手機上,連線伺服器,資料庫的安全性待考量
sqllite
unity 很多搭配用的資料庫,優點免錢,好用,但不算伺服器,是跟隨單機的
arcclet
看起不錯用,待還沒研究
先測試了sqllite
參考教學 http://blog.csdn.net/sinat_20559947/article/details/49331731
但試了很長一時間,一直卡在 DB open ,無法讀取,或是 reader 時出問題~~
後來發現原來和引用的DLL版本大有關係
基本要有的DLL
專案裡要有資料匣 >Plugins
裡面要有三個DLL
Mono.Data.Sqlite.dll
sqlite3.dll
System.Data.dll
我的unity 版本是 5.5.1
三個DLL 版本
Mono.Data.Sqlite.dll 1.0.61.0
sqlite3.dll
System.Data.dll 2.0.50727
連資料庫
string appDBPath = Application.dataPath + "/123.db";
DbAccess db = new DbAccess(@"Data Source=" + appDBPath);
建table
db.CreateTable("momo",new string[]{"name","qq","email","blog"}, new string[]{"text","text","text","text"});
insert DATA
db.InsertInto("kkk", new string[]{ "'obbbb'" });
讀取資料
SqliteDataReader dr;
string sss;
dr= db.ExecuteQuery ("select aa from kkk");
while (dr.Read()) //read every data
{
//ttt =GameObject.Find("ttt").GetComponent();
sss = dr["aa"].ToString();
ttt =GameObject.Find("ttt").GetComponent<Text>();
ttt.text = sss;
}
dr.Close ();
如果有用到 system.data
要特別注意到引用DLL 版本的問題~
可以參考文章~
http://lolikitty.pixnet.net/blog/post/24327577-%E4%BD%BF%E7%94%A8unity3d%E5%85%A7%E7%BD%AE%E7%9A%84mono%E6%A1%86%E6%9E%B6%E6%87%89%E6%B3%A8%E6%84%8F%E7%9A%84%E5%95%8F%E9%A1%8C%EF%BC%88%E9%99%84%E6%9C%89
以我的環境為例~
要用 C:\Program Files\Unity\Editor\Data\Mono\lib\mono\2.0 \system.data.dll
如果用到 C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity\system.data.dll 的DLL,,發佈到android 後會無法執行
以上